package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import Modelo.Equipo;
import Modelo.Jugador;
import Modelo.Liga;

import Vista.VentanaEquipo;
import Vista.VentanaListadoModeloJugadores;

public class ControladorVentanaEquipos implements ActionListener {

	VentanaEquipo miVentanaEquipo;
	private Liga miLiga;
	Equipo miEquipo;
	Jugador miJugador;

	ArrayList<Jugador> jugadores;
	ArrayList<Jugador> auxnull;
	
	public ControladorVentanaEquipos(Liga miLiga) {
		super();
		// TODO Auto-generated constructor stub
		miVentanaEquipo = new VentanaEquipo();
		miVentanaEquipo.setLocationRelativeTo(null);
		miVentanaEquipo.agregarListener(this);
		miVentanaEquipo.setVisible(true);
		this.miLiga=miLiga;
		//miLiga = new Liga();
		miEquipo = new Equipo();
		miJugador = new Jugador();
		
	}



	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
		Object fuente = e.getSource();
		
				if(fuente == miVentanaEquipo.getBtnBuscar())
					{
						String codigo;
						int i;
						
						codigo= miVentanaEquipo.getTxtCodigo();
						i= miLiga.buscarEquipos(codigo);
						
						if (i!=-1)
						{
							miVentanaEquipo.mostrarMensaje("El Equipo ya está registrado");
							miVentanaEquipo.setTxtNombre(miLiga.getEquipo(i).getNombre());
							miVentanaEquipo.setTxtNombreEstadio(miLiga.getEquipo(i).getEstadio());
							miVentanaEquipo.setTxtAno(String.valueOf(miLiga.getEquipo(i).getAnoFund()));
							miVentanaEquipo.setTxtCiudad(miLiga.getEquipo(i).getCiudad());
							VentanaEquipo.setResultados(new VentanaListadoModeloJugadores(miLiga.getEquipo(i).getJugadores()));
							
						}
						else 
						{
							miVentanaEquipo.mostrarMensaje("El Equipo no se encuentra registrado");
							miVentanaEquipo.Limpiar();
							
						}
		
						
						
						
					}
					if(fuente== miVentanaEquipo.getBtnSalir()){
						miVentanaEquipo.setVisible(false);
					}
					if(fuente== miVentanaEquipo.getBtnLimpiar()){
//-------------------------------------Limpiar Tabla--------------------------------
						ArrayList<Jugador> jugadores  = miEquipo.getJugadores();
						jugadores.clear();
						VentanaEquipo.setResultados(new VentanaListadoModeloJugadores(jugadores));
						miVentanaEquipo.Limpiar();
					}
					if(fuente == miVentanaEquipo.getBtnCargar())
					{
						javax.swing.JFileChooser j= new javax.swing.JFileChooser();
				        j.showOpenDialog(j);
						 
				    	try{
						
						String path= j.getSelectedFile().getAbsolutePath();
						
						Equipo miEquipo = new Equipo();
						miEquipo.abrirArchivo(path);
						miEquipo.leerRegistos();
//-------------------------------------Para Mostrar Tabla-----------------------------
						ArrayList<Jugador> Jugadores  = miEquipo.getJugadores();
						miEquipo.setJugadores(Jugadores);
						VentanaEquipo.setResultados(new VentanaListadoModeloJugadores(Jugadores));
						
						miEquipo.cerrarArchivo();
						jugadores= miEquipo.getJugadores();		
						miVentanaEquipo.mostrarMensaje("Los jugadores se han cargado satisfactoriamente");
				    	
						
						
						
						
						miVentanaEquipo.getBtnCargar().setVisible(false);
				    	
				    	
				    	
				    	
				    	
				    	
				    	
				    	}catch(NullPointerException ev){
	 
				    		javax.swing.JOptionPane.showMessageDialog(j, "Has seleccionado cerrar programa, saliendo...");
					    } 
					  
					    }
	

					if (fuente == miVentanaEquipo.getBtnRegistrar())
					{
						try{
						if (miVentanaEquipo.getTxtCodigo().equals("") || 
								miVentanaEquipo.getTxtNombre().equals("") ||
								miVentanaEquipo.getTxtCiudad().equals("") ||
								miVentanaEquipo.getTxtNombreEstadio().equals(""))
						{
							miVentanaEquipo.mostrarMensaje("Debe llenar todos los campos!!");
							}
							else{
					String codigo, nombre, ciudad, estadio;
					int anoFund;
					codigo= miVentanaEquipo.getTxtCodigo();
					nombre = miVentanaEquipo.getTxtNombre();
					anoFund= Integer.parseInt(miVentanaEquipo.getTxtAno());
					ciudad = miVentanaEquipo.getTxtCiudad();
					estadio = miVentanaEquipo.getTxtNombreEstadio();
			
					
					Equipo equipo = new Equipo(codigo, nombre, anoFund, ciudad, estadio,0,0,0,0,jugadores);
					//-----------------------------Posicion equipo.getJugador(i)---------------------------
					miLiga.IncluirEquipo(equipo);
				    miVentanaEquipo.Limpiar();
					miVentanaEquipo.mostrarMensaje("NUMERO DE EQUIPOS " + miLiga.cantEquipos());
					miVentanaEquipo.mostrarMensaje("El equipo se han registrado satisfactoriamente");
					miVentanaEquipo.Limpiar();
//-------------------------------------------------------Limpiar Tabla------------------------
					ArrayList<Jugador> jugadores  = miEquipo.getJugadores();
					jugadores.clear();
					VentanaEquipo.setResultados(new VentanaListadoModeloJugadores(jugadores));
					
					
					
					
					
					miVentanaEquipo.getBtnCargar().setVisible(true);
					
							
							
					}
					}
					catch(NumberFormatException e1)
					{
						miVentanaEquipo.mostrarMensaje("El Año debe ser un NUmero entero");	
					}
					}
					
		
	}



	}
